iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 2
1
Data Technology

SQL Server 學習日誌系列 第 2

02.SQL Server Management Studio SQL 格式化與排版

  • 分享至 

  • xImage
  •  

2020.7.9 更新,突然發現自己在這邊的文章有破圖,還好當時在自己部落格有備份
若有興趣看正常文章的朋友,可以到我的部落格:SQL Server Management Studio SQL 格式化與排版

前言

最近三個月因為工作需求,重新開始撰寫 Stored procedure,面對這個只有曾經維護過但沒有正式學習的工作,總是會有些忐忑不安。幸虧周遭同事相當有經驗,給我蠻多指點。這一篇文章主要是撰寫 SQL Scripts 或 stored procedure 過程中,遇到格式與版面跑位的問題,也因為程式碼皆需要 code review,跑版問題常常造成閱讀上的困擾。這一篇將簡單介紹幾個方法與工具,協助我們撰寫程式過程能輕鬆的排版。


起手式 - 定位點與空白調整

定位點與空白 (Tab and Space)
定位點與空白若沒有一致,當 Scripts 放在不同的地方會導致格式與排版不一致,所以可能在自己電腦上的SSMS撰寫時格式整齊一致,但上傳Code Review的平台,或者團隊成員透過不同的IDE開啟,就會有跑版的情況產生。

首先我們在 SSMS 先將定位點與空白顯示出來:
編輯 → 進階 → 檢視空白區
https://d2mxuefqeaa7sj.cloudfront.net/s_DF99F369D07AC241EB55476B432DFF8B55D756C9EB2FEA13E69DF1A39E1935C6_1513760440474_image.png

你會發現撰寫區塊出現空白標示,這樣可以明確知道目前格式是定位點還是空白,如此以來比較好調整
https://d2mxuefqeaa7sj.cloudfront.net/s_DF99F369D07AC241EB55476B432DFF8B55D756C9EB2FEA13E69DF1A39E1935C6_1513775542222_image.png

定位點調整
工具 → 選項 → Transact-SQL → 定位點
修改定位點大小與縮排大小一致,並且選擇插入空白,如此一來你的縮排就不會出現定位點,而皆由空格縮排
https://d2mxuefqeaa7sj.cloudfront.net/s_DF99F369D07AC241EB55476B432DFF8B55D756C9EB2FEA13E69DF1A39E1935C6_1513741368247_image.png

換行之後輸入文字,會發現定位點變成空白
https://d2mxuefqeaa7sj.cloudfront.net/s_DF99F369D07AC241EB55476B432DFF8B55D756C9EB2FEA13E69DF1A39E1935C6_1513775617074_image.png

經過前面的調整,開始撰寫 scripts 的時候,就不會因為定位點與空白而導致排版跑位。那先前的程式碼怎麼辦呢?只需要將選取程式碼 → 編輯 → 進階 → 選取範圍定位鍵轉成空白鍵,就完成轉換。
https://d2mxuefqeaa7sj.cloudfront.net/s_DF99F369D07AC241EB55476B432DFF8B55D756C9EB2FEA13E69DF1A39E1935C6_1513775975921_image.png

https://d2mxuefqeaa7sj.cloudfront.net/s_DF99F369D07AC241EB55476B432DFF8B55D756C9EB2FEA13E69DF1A39E1935C6_1513776057816_image.png


透過套件格式化與排版程式碼 - ApexSQL

SQL 格式化的套件蠻多的,這邊簡單簡單介紹 ApexSQL Refactor

Step 1. 前往官方下載網站 https://www.apexsql.com/Download.aspx,下載ApexSQL Refactor
https://d2mxuefqeaa7sj.cloudfront.net/s_DF99F369D07AC241EB55476B432DFF8B55D756C9EB2FEA13E69DF1A39E1935C6_1513776554729_image.png

Step 2. 點選開啟,並且依照步驟進行安裝
https://d2mxuefqeaa7sj.cloudfront.net/s_DF99F369D07AC241EB55476B432DFF8B55D756C9EB2FEA13E69DF1A39E1935C6_1513776673210_image.png

https://d2mxuefqeaa7sj.cloudfront.net/s_DF99F369D07AC241EB55476B432DFF8B55D756C9EB2FEA13E69DF1A39E1935C6_1513776716788_image.png

Step 3. 自動選擇目前電腦上有的 SSMS 與 VS 版本
https://d2mxuefqeaa7sj.cloudfront.net/s_DF99F369D07AC241EB55476B432DFF8B55D756C9EB2FEA13E69DF1A39E1935C6_1513776736565_image.png

Step 4. 完成安裝
https://d2mxuefqeaa7sj.cloudfront.net/s_DF99F369D07AC241EB55476B432DFF8B55D756C9EB2FEA13E69DF1A39E1935C6_1513776813691_image.png

Step 5. 開啟SSMS 輸入一段語法,選取它
https://d2mxuefqeaa7sj.cloudfront.net/s_DF99F369D07AC241EB55476B432DFF8B55D756C9EB2FEA13E69DF1A39E1935C6_1513777009423_image.png

Step 6. ApexSQL → ApexSQL Refactor → Format SQL
https://d2mxuefqeaa7sj.cloudfront.net/s_DF99F369D07AC241EB55476B432DFF8B55D756C9EB2FEA13E69DF1A39E1935C6_1513777075375_image.png

Step 7. 完成
https://d2mxuefqeaa7sj.cloudfront.net/s_DF99F369D07AC241EB55476B432DFF8B55D756C9EB2FEA13E69DF1A39E1935C6_1513777129176_image.png



上一篇
01. 開始與簡介
下一篇
03. NEWID () 函數與亂數應用
系列文
SQL Server 學習日誌30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言